Part Number Hot Search : 
1N5340B BL0306 B102J C5032 4017B EC260 01800 1N5340B
Product Description
Full Text Search
 

To Download JE360 Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
  je300 , je310 , je350 and JE360 jpeg baseline encoder ip - core users manual rev 3 . 0 ? by penz vhdl frankenstr. 16 d - 55299 nackenheim germany www.penz - vhdl.de free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 2 table of c ontents 1. the jpeg baseline encoding standard ................................ .............................. 5 1.1 level shift ................................ ................................ ................................ ..... 5 1.2 blocks ................................ ................................ ................................ ........... 5 1 .3 components ................................ ................................ ................................ . 6 1.4 dct ................................ ................................ ................................ .............. 7 1.5 quantization ................................ ................................ ................................ . 7 1.6 zigzag order ................................ ................................ ................................ . 8 1.7 differential dc encoding ................................ ................................ .............. 8 1.8 run / size symbols encoding ................................ ................................ ...... 9 1.9 huffman coding ................................ ................................ .......................... 10 2. the jpeg file format ................................ ................................ ....................... 11 2.1 soi start of image ................................ ................................ ...................... 11 2.2 dq t define quantization table ................................ ................................ .. 11 2.3 sof start of frame ................................ ................................ .................... 12 2.4 dht define huffman table ................................ ................................ ........ 12 2.5 sos start of scan ................................ ................................ ...................... 13 2.6 eoi end of image ................................ ................................ ...................... 13 3. encoding example ................................ ................................ ............................. 14 4. the je300, je310, je350 and JE360 jpeg encoder ................................ ...... 16 4.1 technical features ................................ ................................ ..................... 16 4.2 difference between je300, je 310, je350 and JE360 ............................... 16 4.3 needed resource ................................ ................................ ....................... 17 4.4 functional description ................................ ................................ ................ 18 4.5 typical application ................................ ................................ ...................... 19 4.6 core entitys ................................ ................................ ................................ 20 4.6.1 je300 core entity ................................ ................................ ............... 20 4.6.2 je310 core entity ................................ ................................ ............... 20 4.6.3 je350 core entity ................................ ................................ ............... 21 4.6.4 JE360 core entity ................................ ................................ ............... 21 4.7 core interface ................................ ................................ ............................. 22 4.7.1 pixel input interface ................................ ................................ ............. 22 4.7.2 compressed data output interface ................................ ..................... 25 4.7.3 tables programming interface ................................ ............................ 26 5. using with xilinx ise ................................ ................................ .......................... 27 5.1 ngc file ................................ ................................ ................................ ..... 27 5.2 component declarations ................................ ................................ ............ 29 5.2.1 je300 component declaration ................................ ............................ 29 5.2.2 je310 component declaration ................................ ............................ 30 5.2.3 je350 component declaration ................................ ............................ 31 5.2.4 JE360 component declaration ................................ ............................ 32 5.3 component instantiations ................................ ................................ ........... 33 5.3.1 je300 component instantiation ................................ .......................... 33 5.3.2 je310 component inst antiation ................................ .......................... 34 5.3.3 je350 component instantiation ................................ .......................... 35 5.3.4 JE360 component instantiation ................................ .......................... 36 6. quantization tables ................................ ................................ ........................... 3 7 6.1 default quantization table for luminance ................................ ................. 38 6.2 default quantization table for ch rominance ................................ .............. 38 free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 3 6.3 changing the compression rate ................................ ................................ 39 7. huffman tables ................................ ................................ ................................ . 40 7.1 default huffman tables for je300 and je310 ................................ ............ 40 7.1.1 huffman table for luminance ................................ ............................. 40 7.1.2 huffman table for chrominance ................................ ......................... 41 7.2 default huffman tables for je350 and JE360 ................................ ............ 42 7.2.1 huffman table for luminance ................................ ............................. 42 7.2.2 huffman table for chrominance ................................ ......................... 43 8. literature and links ................................ ................................ ........................... 44 8.1 documents from the internet ................................ ................................ ...... 44 8.2 hard book ................................ ................................ ................................ ... 44 8.3 internet links ................................ ................................ .............................. 44 9. revision info ................................ ................................ ................................ ...... 45 list of f igures : figure 1: jpeg encoding structure ................................ ................................ ............ 5 figure 2: dividing image in blocks ................................ ................................ .............. 6 figure 3: color image as blocks and components ................................ ..................... 6 figure 4: color components ................................ ................................ ....................... 7 figure 5: subsampled color component s ................................ ................................ .. 7 figure 6: zigzag order from 8x8 block ................................ ................................ ....... 8 figure 7: dc coefficient size, vli symbols ................................ ................................ 9 figure 8: ac coefficients run/size, vli symbols ................................ ...................... 9 figure 9: block with original samples ................................ ................................ ...... 14 figure 10: block with level shifted samples ................................ ............................ 14 figure 11: coefficients after dct ................................ ................................ ............. 14 figure 12: quantization table ................................ ................................ ................... 14 figure 13: quantized coefficients ................................ ................................ ............. 14 figure 14: values in zigzag order ................................ ................................ ............ 14 figure 15: huffman encoding ................................ ................................ ................... 15 figure 16: encoder structure ................................ ................................ .................... 18 figure 17: block diagram of a typical application ................................ .................... 19 figure 18: ise project ................................ ................................ ............................... 27 figure 19: ise implementation process properties ................................ .................. 28 free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 4 list of t ables : table 1: size symbols ................................ ................................ ................................ 9 table 2: ac run / size symbols ................................ ................................ ............... 10 table 3: difference between cores ................................ ................................ .......... 16 table 4: needed resource for je300 ................................ ................................ ....... 17 table 5: needed resource for je310 ................................ ................................ ....... 17 table 6: needed resource for je350 ................................ ................................ ....... 17 table 7: needed resource for JE360 ................................ ................................ ....... 17 table 8: core entity signals ................................ ................................ ..................... 22 table 9: number of block ram and pixel relation ................................ ..................... 24 table 10: zigzag order ................................ ................................ ............................. 37 table 11: default quantization table for lumi nance ................................ ................ 38 table 12: default quantization table for chrominance ................................ ............ 38 table 13: luminance number of dc codes ................................ ............................. 40 table 14: luminance dc symbol to code assignment ................................ ............ 40 table 15: luminance number of ac codes ................................ ............................. 40 t able 16: luminance ac symbol to code assignment ................................ ............ 40 table 17: chrominance number of dc codes ................................ ......................... 41 table 18: chrominance dc symbol to co de assignment ................................ ........ 41 table 19: chrominance number of ac codes ................................ .......................... 41 table 20: chrominance ac symbol to code assignment ................................ ......... 41 table 21: luminance number of dc codes ................................ ............................. 42 table 22: luminance dc symbol to code ................................ ................................ 42 tabl e 23: luminance number of ac codes ................................ ............................. 42 table 24: luminance ac symbol to code assignment ................................ ............ 42 table 25: chrominance number of dc codes ................................ ......................... 43 table 26: chrominance dc symbol to code assignment ................................ ........ 43 table 27: chrominance number of ac codes ................................ .......................... 43 table 28: chrominance ac symbol to code assignment ................................ ......... 43 free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 5 1. the jpeg baseline encoding standard the jpeg standard defines four modes of operation: sequential dct - based progressive dct - based hierarchi cal sequential lossless the most used mode is the sequential dct - based, also known as baseline mode. the following overview describes the baseline encoding standard. figure 1 : jpeg e ncoding s tructure typical compress rate s are values from 10 to 15. 1.1 level shift the image samples must be in the two?s complement format with a size of 8 bit. if the samples are in integer format, a value of 80h (800h with 12 bit precision) must be subtracted. 1.2 blocks the complete image is divide d into 8x8 blocks, starting in the top left row. the blocks are read out in the same order, beginning in the top left corner to the top right corner, and then continuing the next eight rows until all done. if the number of pixels / lines are not a multiple of 8, the last pixel / line is repeated until the block is completed. any extra pixels / lines are discarded by the decoding process. 8x8 b locks 8x8 2d - dct zigzag o rder entropy e ncoder quantiz i er bit - stream source image data jpeg baseline encoder compressed image data free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 6 figure 2 : dividing i mage in b locks 1.3 components the parts of a pixel are named components. a mono chrome image has only one and a color image three components . one ore more components may be sub - sampled but usually this is done, only with the chrominance components. here a color image with the components y, cb and cr, no subsampling. figure 3 : color i mage as b locks and c omponents 5 4 3 2 1 6 7 8 9 10 11 12 5 4 3 2 1 6 7 8 9 10 11 12 5 4 3 2 1 6 7 8 9 10 11 12 5 4 3 2 1 6 7 8 9 10 11 12 y c b cr free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 7 the blocks are processed in the order components and then the indexes. figure 4 : color c omponents y1 cb1 cr1 y2 cb2 cr2 ? y12 cb12 cr12 when the chrominance components (cb and cr) are subsampled with a value of 2 then one chrominance sample pair is used for two luminance samples. figure 5 : subsampled c olor c omponents y1 y2 cb1 cr1 y3 y4 cb2 cr2 ? y11 y12 cb6 cr6 1.4 dct the discrete cosine transformation (dct) transforms the 64 samples array of an 8x8 block into an 8x8 array of coefficients. doing this by using the following equation: ? ? = = + + = 7 0 7 0 ) 16 ) 1 2 ( cos( * ) 16 ) 1 2 ( cos( * ) , ( * 2 ) ( * 2 ) ( ) , ( x y v y u x x y s u c v c u v s p p 1 0 2 1 ) ( else u when u c = = 1 0 2 1 ) ( else v when v c = = the two indices x and y represent the sample placement , t he indices u and v represent the coefficients frequencies. the top left element ( ) 0 , 0 ( s ) is the dc coefficient, the bottom right left element ( ) 7 , 7 ( s ) is the coefficient with the highest horizontal and vertical frequencies. 1.5 quantization the quantization reduces the accuracy of the coefficients. this is done by dividing each coefficient by the value in the quantization table with the same indices. when using l a rger values in the table consequence a high er compression rate, but also more artifacts. on the other hand, the using of lower values results in less compression and lossy. t he higher frequent ly coefficient s are lower and the table values for these coeffic ients are larger, so much of quantized coefficients become zero. this is important for a high compression rate. t he quantization stage is the mean reason for lossy, all other stages are lossless (the dct is a little lossy cause the rounding errors) . free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 8 1.6 zigza g order the quantized coefficients of a block are rearranged in that way that there are sorted from dc to the highest frequencies. the goal is to have a large number of subsequent zeros for the following run / size encoding . figure 6 : zigzag order from 8x8 b lock 1.7 differential dc e ncoding the dc coefficient represents the average value of all 64 samples. because the average differs only slightly from one block to the next, the dc coefficient is differenti al encoded. from the dc coefficient, is subtracted the dc coefficient from the previous block of the same component. for the first block in the image, is a predicted value of zero defined. the difference is usually a short value and results so in a short i nteger in the following symbol encoding. 0 1 5 6 14 15 27 28 2 4 7 13 16 26 29 4 2 3 8 12 17 25 30 41 43 9 11 18 24 31 40 44 53 10 19 23 32 39 45 52 54 20 22 33 38 46 51 55 60 21 34 37 47 50 56 59 61 35 36 48 49 57 58 62 63 free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 9 1.8 run / size symbols encoding the zigzag ordered values are transformed in a run/size (dc only size) symbol and variable length integers bits (vli) . the size symbol is taken from the given table: table 1 : size s ymbols size values range 0 0 1 - 1, 1 2 - 3 ... - 1, 2 ... 3 3 - 7 ... - 4, 4 ... 7 4 - 15 ... - 8, 8 ... 15 5 - 31 ... - 16, 16 ... 31 6 - 63 ... - 32, 32 ... 63 7 - 127 ... - 64, 64 ... 127 8 - 255 ... - 128, 128 ... 255 9 - 511 ... - 256, 2 56 ... 511 10 - 1023 ... - 512, 512 ... 1023 11 - 2047 ... - 1024, 1024 ... 2047 12 * - 4095 ? - 2048, 2048 ... 4095 13 * - 8191 ... - 4096, 4096 ... 8191 14 * - 16383 ... - 8192 , 8192 ... 16383 15* - 32767 ... - 16384, 16384 ... 32767 *defined only for 12 bit pre cision. the size symbol represents the number of the vli bits. the vli bits are generated by adding a one, if the value is negative . then the vli bits are truncate to n lower bits , where n is the size value. figure 7 : dc c oeffici ent size, vli s ymbols (size), vli the ac values are coded in a run/size and vli symbol, but only the non - zero values. if the value is zero, then only the run part of the next non - zero value is incremented. because the run part is four bit, only 15 consecu tive zeros can be coded in the run/size symbol. if 16 consecutive zeros appear, the special zero run length (zrl) symbol is inserted. when at one point all remaining values are zero, then the end of block (eob) symbol is inserted, and the block is finished . figure 8 : ac c oefficients run/size, vli s ymbols (run/size), vli free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 10 1.9 huffman coding the run/size symbols get a code from the huffman table. the idea behind the huffman coding is, to use codes with variable length. symbols with a lar ge number of occurs get short codes and symbols with less occurs get long er codes. table 2 : ac run / size s ymbols size 0 1 2 3 4 5 6 7 8 9 a b c d e 0 eob 0/1 0/2 0/3 0/4 0/5 0/6 0/7 0/8 0/9 0/10 0/11 * 0/12 * 0/13 * 0/1 4 * 1 1/1 1/2 1/3 1/4 1/5 1/6 1/7 1/8 1/9 1/10 1/11 * 1/12 * 1/13 * 1/1 4 * 2 2/1 2/2 2/3 2/4 2/5 2/6 2/7 2/8 2/9 2/10 2/11 * 2/12 * 2/13 * 2/1 4 * 3 3/1 3/2 3/3 3/4 3/5 3/6 3/7 3/8 3/9 3/10 3/11 * 3/12 * 3/13 * 3/1 4 * 4 4/1 4/2 4/3 4/4 4/5 4/6 4/7 4/8 4/9 4/10 4 /11 * 4/12 * 4/13 * 4/1 4 * 5 5/1 5/2 5/3 5/4 5/5 5/6 5/7 5/8 5/9 5/10 5/11 * 5/12 * 5/13 * 5/1 4 * 6 6/1 6/2 6/3 6/4 6/5 6/6 6/7 6/8 6/9 6/10 6/11 * 6/12 * 6/13 * 6/1 4 * 7 7/1 7/2 7/3 7/4 7/5 7/6 7/7 7/8 7/9 7/10 7/11 * 7/12 * 7/13 * 7/1 4 * 8 8/1 8/2 8/3 8/4 8/ 5 8/6 8/7 8/8 8/9 8/10 8/11 * 8/12 * 8/13 * 8/1 4 * 9 9/1 9/2 9/3 9/4 9/5 9/6 9/7 9/8 9/9 9/10 9/11 * 9/12 * 9/13 * 9/1 4 * 10 10/1 10/2 10/3 10/4 10/5 10/6 10/7 10/8 10/9 10/10 10/11 * 10/12 * 10/13 * 10/1 4 * 11 11/1 11/2 11/3 11/4 11/5 11/6 11/7 11/8 11/9 11/ 10 11/11 * 11/12 * 11/13 * 11/1 4 * 12 12/1 12/2 12/3 12/4 12/5 12/6 12/7 12/8 12/9 12/10 12/11 * 12/12 * 12/13 * 12/1 4 * 13 13/1 13/2 13/3 13/4 13/5 13/6 13/7 13/8 13/9 13/10 13/11 * 13/12 * 13/13 * 13/1 4 * 14 14/1 14/2 14/3 14/4 14/5 14/6 14/7 14/8 14/9 14/1 0 14/11 * 14/12 * 14/13 * 14/1 4 * r u n 15 zrl 15/1 15/2 15/3 15/4 15/5 15/6 15/7 15/8 15/9 15/10 15/11 * 15/12 * 15/13 * 15/1 4 * *defined only for 12 bit precision. the codes from the huffman table and the belonging vli bits (and all following) are threaded to a bi t - stream. the bit - stream is divided into bytes with a length of 8 bit. if a byte contain only 1 (ffh), then a zero byte is inserted behind, to avoid the misinterpretation with a marker. after the very last block, the remaining bits are filled up with ones, to have a complete byte. free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 11 2. the jpeg file format the jpeg file is assembled of segments. each segment h as a header with the marker and when further parameter, a segment length. a marker is a two byte code with the first byte always ffh and the second byte u nequal zero. integer values are high significant byte first arranged. a typical jpeg file segment structure is soi , dqt , sof , dht , sos and eoi . the following description shows only th ose segments , where needed by the mono chrome and color (4:2:2) baselin e encoding. some others modes have more segments, or the segment parameters has another meaning. 2.1 soi start of image the s tart o f i mage segment defines the beginning of an image and has no further parameter. soi marker 16 bit xx, xx ffh, d8h 2.2 dqt define qua ntization table the d efine q uantization t able segment defines the quantization tables, used by the encoder. the table elements are in zigzag order. dqt m arker 16 bit xx, xx ffh, dbh segment length 16 bit xx, xx 2 + n um t ables * 65 for each table: table precision 4 bit x 0 table identifier 4 bit xx 0 for luminance, 1 for chrominance table elements 64 x 8 bit xx, . . . , xx free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 12 2.3 sof start of frame the s tart o f f rame segment defines the geometric parameters of the image sof m arker 16 bit xx, xx ffh, c0 h segme nt length 16 bit xx, xx 32 + n um components * 24 sample precision 8 bit xx 08h or 0ch number of lines 16 bit xx, xx number of samples / line 16 bit xx, xx number of components 8 bit xx 1 for mono chrome, 3 for color for each component: component identif ier 8 bit xx 0 for y, 1 for cb, 2 for cr horizontal sampling factor 4 bit x 1 for luminance, 2 for chrominance vertical sampling factor 4 bit x 1 quantization table selector 8 bit xx 0 for luminance, 1 for chrominance 2.4 dht define huffman table the d efine h uffman t able segment defines the huffman tables , used by the encoder. dht m arker 16 bit xx, xx ffh, c4 h segment length 16 bit xx 2 + num tables * 175 for each table: table class 4 bit x 0 for dc table, 1 for ac table table identifier 4 bit x 0 for l uminance, 1 for chrominance number of codes length 16 x 8 bit xx,.., xx codes n x 8 bit xx,.., xx n = 12 for d c, 162 for ac free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 13 2.5 sos start of scan the s tart o f s can segment defines the scan parameter, followed by the compressed bit - stream. sos m arker 16 bit xx, xx ffh, dah segment length 16 bit xx, xx 6 + num components * 2 number of component 8 bit xx 1 for mono chrome, 3 for color for each component: component selector 8 bit xx 0 for y, 1 for cb, 2 for cr dc table selector 4 bit x 0 for y, 1 for cb and cr ac table selector 4 bit x 0 for y, 1 for cb and cr start of spectral selection 8 bit xx 00 end of spectral selection 8 bit xx 3fh successive appr. bit pos high 4 bit x 0 successive appr. bit pos low 4 bit x 0 image bit stream n x 8 bit xx, .., xx 2.6 e oi end of image the e nd o f i mage segment defines the end of an image and has no further parameter. eoi marker 16 bit xx, xx ffh, d9h free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 14 3. encoding example this example shows the way of a n 8x8 block with sampling values to a jpeg compressed bit - stream . here a n 8x8 block with the original luminance sampling , as unsigned values. figure 9 : block with o riginal s amples 139 144 149 153 155 155 155 155 144 151 153 156 159 156 156 156 150 155 160 163 158 156 156 156 159 161 162 160 160 15 9 159 159 159 160 161 162 162 155 155 155 161 161 161 161 160 157 157 157 162 162 161 163 162 157 157 157 162 162 161 161 163 158 158 158 as first, the unsigned sampling values are level shifted to signed values, by subtracting 128: figure 10 : block with l evel s hifted s amples 11 16 21 25 27 27 27 27 16 23 25 28 31 28 28 28 22 27 32 35 30 28 28 28 31 33 34 32 32 31 31 31 31 32 33 34 34 27 27 27 33 33 33 33 32 29 29 29 34 34 33 35 34 29 29 29 34 34 33 33 35 30 30 30 n ow, the sampling values are transformed from the time domain to the frequency domain by a discrete cosine transformation. figure 11 : coefficients a fter dct 236 - 1 - 12 - 5 2 - 2 - 3 1 - 23 - 18 - 6 - 3 - 3 0 0 - 1 - 11 - 9 - 2 2 0 - 1 - 1 0 - 7 - 2 0 2 1 0 0 0 - 1 - 1 2 2 0 - 1 1 1 2 0 2 0 - 1 2 1 - 1 - 1 0 0 - 2 - 1 2 1 - 1 - 3 2 - 4 - 2 2 1 - 1 0 for q uantization, the default luminance table is used. figure 12 : quantization t able 16 11 10 16 24 40 51 61 12 12 14 19 26 58 60 55 14 13 16 24 40 57 69 56 14 17 22 29 51 87 80 62 18 22 37 56 68 109 103 77 24 35 55 64 81 104 113 92 49 64 78 87 103 121 120 101 72 92 95 98 112 100 103 99 after quantization, most of the higher frequen cy coefficients are zero . figure 13 : quantized c oefficients 15 0 - 1 0 0 0 0 0 - 2 - 1 0 0 0 0 0 0 - 1 - 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 the quantized values are rearranged in zigzag order. figure 14 : values in zigzag o rder 15, 0, - 2, - 1, - 1, - 1, 0, 0, - 1, 0 ? 0 free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 15 now, the values are transformed in run/size symbols and variable length integers (vli) . for the dc coefficient we assumed, that the previous dc coefficient was 12. the codes for the symbols are taken from the default luminance huffman table. figure 15 : huffman e ncoding dc - value difference (size),vli code,vli 15 15 - 12 = 3 (2), 11 011 11 ac - values (run, size),vli code,vli 0, - 2 (1, 2), 0 1 11011, 01 - 1 (0, 1), 0 00, 0 - 1 (0, 1), 0 00, 0 - 1 (0, 1), 0 00, 0 0, 0, - 1 (2, 1), 0 11100, 0 0 ... 0 eob 1010 the code and vli bits are threaded to a finally bit - stream of 31 bit, where represents the 64 byte block. 01111 1101101 000 000 000 111000 1010 the compression rate for this example is (64 * 8 bit / 31 bit ) 16.5. free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 16 4. the je300 , je310 , je350 and JE360 jpeg encoder 4.1 technical features optimized for xilinx spartan and virtex fpga marker generation included jpeg file output baseline encode r compliant with baseline iso/iec 10918 - 1 block building ram included, no external ram needed mono chrome or color (ycbcr 4:2:2) up to 4096 pixel per row line by line pixel input motion - jpeg capability 8 - bit/pixel or 12 - bit/pixel input (core dependent) 2 q uantization tables 4 fixed huffman tables ( 2 dc and 2 ac) predefined luminance and chrominance tables fully synchronous design fully stall able design simple cpu interface for quantization table reprogramming different clocks for encoder and cpu interface single clock cycle per pixel encoding no pause cycles between blocks 4.2 difference b etween je300 , je310 , je350 and JE360 the four c ores are very similar, but optimized for different fpga famil ies and input sample precision: table 3 : di fference b etween cores fpga family 8 bit sample precision 12 bit sample precision spartan - ii spartan - iie virtex virtex - e je300 je350 spartan - iii virtex - ii virtex - iip je310 JE360 free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 17 4.3 needed resource table 4 : needed resource for je3 00 family device pixel * flip flops 4 input luts block ram tbufs clock iobs iobs perfor - mance spartan - iie xc2s 6 00e - 6 4096 2254 4865 65 256 2 74 7 0 mhz spartan - iie xc2s 6 00e - 6 2048 2253 4980 33 224 2 74 7 0 mhz spartan - iie xc2s 6 00e - 6 1024 2252 4908 17 208 2 74 7 0 mhz spartan - iie xc2s 6 00e - 6 512 2251 4781 9 200 2 74 7 0 mhz virtex xcv 10 00 - 4 1024 2252 4908 17 2 08 2 74 4 0 mhz virtex - e xcv 16 00e - 6 2048 2253 4980 33 224 2 74 7 0 mhz table 5 : needed resource for je310 family device pixel * f lip flops 4 input luts block ram tbufs clock iobs iobs multiplier blocks perfor - man c e spartan - iii xc3s 1 0 00 - 4 4096 1 804 3507 17 - 2 74 16 85 mhz spartan - iii xc3s 1 0 00 - 4 2048 1 800 3607 9 - 2 74 16 85 mhz spartan - iii xc3s 1 0 00 - 4 1024 1799 3548 5 - 2 74 16 85 mhz spartan - iii xc3s 1 0 00 - 4 512 1799 3403 3 - 2 74 16 85 mhz virtex - ii xc2v 100 0 - 4 2048 1 800 3599 9 - 2 74 16 90 mhz virtex - iip xc2vp4 - 5 2048 1 800 3599 9 - 2 74 16 120 mhz table 6 : needed resource for je350 family device pixel * f lip flops 4 input luts block ram tbufs clock iobs iobs perfor - mance spartan - iie xc2s600e - 6 2048 2686 7 650 49 272 2 78 55 mhz spartan - iie xc2s600e - 6 1024 3007 7 573 25 2 48 2 78 55 mhz spartan - iie xc2s600e - 6 512 3004 7 434 13 2 36 2 78 55 mhz spartan - iie xc2s600e - 6 256 3018 7 467 7 2 36 2 78 55 mhz virtex xcv1000 - 4 512 3004 7 434 13 2 3 6 2 78 45 mhz virtex - e xcv1600e - 6 2048 3020 7 650 49 2 72 2 78 55 mhz table 7 : needed resource for JE360 family device pixel * flip flops 4 input luts block ram tbufs clock iobs iobs multiplier blocks perfor - mance spartan - iii xc3s 16 00 - 4 2048 2 329 41 59 25 - 2 78 16 80 mhz spartan - iii xc3s 1 0 00 - 4 1024 2330 4 219 13 - 2 78 16 80 mhz spartan - iii xc3s 1 0 00 - 4 512 2329 4148 7 - 2 78 16 80 mhz spartan - iii xc3s 1 0 00 - 4 256 2325 40 08 4 - 2 78 16 80 mhz vir tex - ii xc2v 100 0 - 4 2048 2329 41 49 25 - 2 78 16 8 0 mhz virtex - iip xc2vp4 - 5 2048 2329 41 49 25 - 2 78 16 12 0 mhz *maximal number of pixel in a line, when in mono chrome mode. when in color mode, divide the value by two. free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 18 4.4 functional description the je3xx is a stand a lone image compressor using the jpeg ?baseline system?. the core is a fully synchronous design and has the capability to be stalled from the pixel input and from the compressed image output side. figure 16 : e ncoder s tructure * vector size (11:0) on je350 and JE360 an additional interface, the ?table programming interface? , is used to change the quantization tables. the ?table programming interface? has an own clock to minimize the glue logic to connect the core to a controller. usually there is no need to change the tables, only if the compression rate is to change. each incoming line of pixels is stored in the internal ram. when 8 lines are written, the pixels are read out in 8x8 blocks. these blocks goes through the two - dimensional discrete cosine transformation (2d - dct) and will be transformed into the 64 coef - ficients of the frequency domain. now, the coefficients will be read out in a zigzag order and quantized by dividing trough the selected quantizati on table. the first (dc) quantized coefficient is differentially coded, using the most recently dc coefficient from the same component. now all coefficients are run length coded to run/size symbols (the dc coefficient only to a size symbol). t he symbols ar e huffman coded, using the code from the selected huffman table. the resulting bit - stream of huffman codes is divided into parts with 8 bit and embedded between all needed markers. finally, the jpeg file is stored in the output register. num_pixel num_rows marker tables ram_ready last_block_idx_x (8:0) max_line_size (2:0) color valid_data_in reset 8x8 2d - dct zigzag order quantization tables huffman entropy encoder huffman tables dc differential coefficient table jpeg_out (7:0) jpeg_ready jpeg_valid jpeg_enable clk last_row data_in (7:0) * quantizier blocking ram table_clk table_addr (6:0) table_data (7:0) table_write_quant table_read_quant mux free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 19 4.5 typical applicati on in a typical application, first the video signal is digitized (if analog). the digitized pixels are written directly into the encoder . there is no need to reordering the pixel in 8x8 blocks, no external ram is needed. the encoder outputs the bit - stream of the compressed image with all markers . the bit - stream can be transmitted over a system with limited bandwidth like a network or usb bus. figure 17 : block d iagram of a t ypical a pplication video i nput je3xx jpeg encoder line by l ine compressed i mage disk or low b andwidth t ransport m edium free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 20 4.6 core entity s this is the cor e entity like defined in the vhdl source code: 4.6.1 je300 core entity entity je300 is port ( -- pixel input clk : in std_logic ; -- main clock for encoder reset : in std_logic ; -- reset jpeg logic color : in std_logic ; -- color mode (0 = mono) valid_data_i n : in std_logic ; -- sample data is valid data_in : in std_logic_vector (7 downto 0); -- sample data last_ row : in std_logic ; -- last row in this image max_line_size : in std_logic _vector ( 2 downto 0) ; -- 001:64, 010:128 ... 111:4096 last_ block_idx_x : in std_logic _vector ( 8 downto 0) ; -- number of used blocks - 1 num_pixel : in std_logic _vector ( 11 downto 0); -- number of pixel in a row num_rows : in std_logic _vector ( 11 downto 0); -- number of row in the image ram _ready : out std_logic ; -- encoder is ready for new pixel -- compressed data output jpeg_out : out std_logic_vector (7 downto 0); -- jpeg stream byte output jpeg_valid : out std_logic ; -- jpeg stream byte is valid jpeg_enable : in std_logic ; -- application read the jpeg byte jpeg_read y : out std_logic ; -- jpeg stream is finished -- tables programming table_clk : in std_logic ; -- clock for table reprogramming table_addr : in std_logic_vector ( 6 downto 0); -- table address table_data : inout std_logic_vector ( 7 downto 0); -- tabl e data table_write_quant : in std_logic ; -- write value in quantization ta b table_read_quant : in std_logic -- read quantization table ); end je300 ; 4.6.2 je310 core entity entity je310 is port ( -- pixel input clk : in std_logic ; -- main clock for encoder reset : in std_logic ; -- reset jpeg logic color : in std_logic ; -- color mode (0 = mono) valid_data_in : in std_logic ; -- sample data is valid data_in : in std_logic_vector (7 downto 0); -- sample data last_ row : in std_logic ; -- last row in this ima ge max_line_size : in std_logic _vector ( 2 downto 0); -- 001:64, 010:128 ... 111:4096 last_ block_idx_x : in std_logic _vector ( 8 downto 0); -- number of used blocks - 1 num_pixel : in std_logic _vector ( 11 downto 0); -- number of pixel in a row num_rows : in std_logic _vector ( 11 downto 0); -- number of row in the image ram _ready : out std_logic ; -- encoder is ready for new pixel -- compressed data output jpeg_out : out std_logic_vector (7 downto 0); -- jpeg stream byte output jpeg_valid : out std_logi c ; -- jpeg stream byte is valid jpeg_enable : in std_logic ; -- application read the jpeg byte jpeg_ready : out std_logic ; -- jpeg stream is finished -- tables programming table_clk : in std_logic ; -- clock for table reprogramming table_addr : in std _logic_vector ( 6 downto 0); -- table address table_data : inout std_logic_vector ( 7 downto 0); -- table data table_write_quant : in std_logic ; -- write value in quantization tab table_read_quant : in std_logic -- read quantization table ); end je310 ; free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 21 4.6.3 je350 core entity entity je350 is port ( -- pixel input clk : in std_logic ; -- main clock for encoder reset : in std_logic ; -- reset jpeg logic color : in std_logic ; -- color mode (0 = mono) valid_data_in : in std_logic ; -- sample data is valid dat a_in : in std_logic_vector ( 11 downto 0); -- sample data last_ row : in std_logic ; -- last row in this image max_line_size : in std_logic _vector ( 2 downto 0); -- 001:64, 010:128 ... 111:4096 last_ block_idx_x : in std_logic _vector ( 8 downto 0); -- number of used blocks - 1 num_pixel : in std_logic _vector ( 11 downto 0); -- number of pixel in a row num_rows : in std_logic _vector ( 11 downto 0); -- number of row in the image ram _ready : out std_logic ; -- encoder is ready for new pixel -- compressed data ou tput jpeg_out : out std_logic_vector (7 downto 0); -- jpeg stream byte output jpeg_valid : out std_logic ; -- jpeg stream byte is valid jpeg_enable : in std_logic ; -- application read the jpeg byte jpeg_ready : out std_logic ; -- jpeg stream is finished -- tables programming table_clk : in std_logic ; -- clock for table reprogramming table_addr : in std_logic_vector ( 6 downto 0); -- table address table_data : inout std_logic_vector ( 7 downto 0); -- table data table_write_quant : in std_logic ; -- write value in quantization tab table_read_quant : in std_logic -- read quantization table ); end je350 ; 4.6.4 JE360 core entity entity JE360 is port ( -- pixel input clk : in std_logic ; -- main clock for encoder reset : in std_logic ; -- reset jpeg logic c olor : in std_logic ; -- color mode (0 = mono) valid_data_in : in std_logic ; -- sample data is valid data_in : in std_logic_vector ( 11 downto 0); -- sample data last_ row : in std_logic ; -- last row in this image max_line_size : in std_logic _vector ( 2 do wnto 0); -- 001:64, 010:128 ... 111:4096 last_ block_idx_x : in std_logic _vector ( 8 downto 0); -- number of used blocks - 1 num_pixel : in std_logic _vector ( 11 downto 0); -- number of pixel in a row num_rows : in std_logic _vector ( 11 downto 0); -- number of row in the image ram _ready : out std_logic ; -- encoder is ready for new pixel -- compressed data output jpeg_out : out std_logic_vector (7 downto 0); -- jpeg stream byte output jpeg_valid : out std_logic ; -- jpeg stream byte is valid jpeg_enable : in std_logic ; -- application read the jpeg byte jpeg_ready : out std_logic ; -- jpeg stream is finished -- tables programming table_clk : in std_logic ; -- clock for table reprogramming table_addr : in std_logic_vector ( 6 downto 0); -- table address table_data : inout std_logic_vector ( 7 downto 0); -- table data table_write_quant : in std_logic ; -- write value in quantization tab table_read_quant : in std_logic -- read quantization table ); end JE360 ; free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 22 4.7 core interface the core interface is subdivi ded into three parts: the ?pixel input interface?, the ?compressed data output interface? and the ?tables programming interface?. the ?tables programming interface? is used, only when the tables are programmed with custom values. table 8 : core entity s ignals signal name direction description pixel input interface clk in encoder clock reset in reset encoder state machines valid_data_in in pixel is valid data_in (7 : 0) * in pixel input last_ row in last row in this image color i n mode 0 = mono chrome, 1 = color max_line_size ( 2 :0) in number of samples per row last_block_idx_x ( 8 :0) in index of the last 8 pixel - block in a row num_pixel (11:0) in number of pixel in a row num_rows (11:0) in number of rows in the image ram _ready out ram is ready for new pixel compressed data output interface jpeg_enable in data handshake jpeg_valid out output data is valid jpeg_ready out last data for this field jpeg_out (7:0) out output data tables programming interface table_clk in clock for table reprogramming table_addr ( 6 :0) in table select and addressing table_data ( 7 :0) in/out table read - or write - data table_write_quant in write data into quantization table table_read_quant in read data from quantization table * vector size (11: 0) on je350 and JE360 4.7.1 pixel input interface clk clk : in std_logic ; -- main clock for encoder this is the main clock for the entire encoder, except the tables programming interface. input signals must be valid at the rising edge, output signals are up dated with the rising edge too . free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 23 reset reset : in std_logic ; -- reset jpeg logic synchronic reset of the encoder core, but quantization tables and huffman tables are not affected. assert this signal for at least one clock cycle, if a n image compression is cancel e d. data_in data_in : in std_logic_vector ( 7 downto 0); -- sample data for je300 and je310 data_in : in std_logic_vector ( 11 downto 0); -- sample data for je350 and JE360 this is the pixel input port. the format is 8 (12) bit signed with valu es from - 128 ( - 2048 ) to 127 ( 2047) . subdivide the image in 8x8 blocks and read out the blocks from left to right and top to bottom. the data will be accepted, when ?valid_data_in? and ? ram _ready? are asserted. valid_data_in valid_data_in : in std_logic ; -- sample data is valid this is the pixel qualifier. assert this signal, when a new pixel is valid. pixel data will be accepted, when ?dct_ready? is asserted too. ram _ready ram _ready : out std_logic ; -- ram is ready for new pixel this signal is asser ted, when the core is ready to receive new data. when ?jpeg_enable? stays always asserted , then usually this signal will not be de asserted. i f there are less than 80 pixels in the rows then this signal is de asserted, even if ?jpeg_enable? stays always asse rted . this is so cause as first; the marker must be shifted out, before the compressed bit stream can be shifted out. the second reason for de asserting is , when the compression rate is lower as three on the je300 and je310 or lower as four on the je350 and JE360. last_ row last_ row : in std_logic ; -- last row in this image this signal defines the number of lines in the image. assert this signal while the last pixel of the last line is transferred . the number of lines must be multiple of 8. if the image h eight is not a multiple of 8, then repeat the last line until the right number is reached. free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 24 color color : in std_logic ; -- color mode (0 = mono) this signal defines the kind of the image, a zero means a mono chrome image, a one a colored image with chro minance sub sampling (ycbcr 4:2:2). this signal must not change while a image is compressed. when only mono chrome images are compressed, assign a static zero to allow the mapper removing the unused logic. max_line_size max_line_size : in std_logic _vect or ( 2 downto 0); -- number of samples per row this signal determinate the number of samples per row and determinate the number of block ram, used for the pixel blocking. assign a static value, to allow the mapper to remove the unused block ram. an un - stat ic value will result in 64 blocks of ram. allowed values are only there, which in the following table: table 9 : number of block ram and pixel relation value of max_line_size number * of block ram je300 number * of block ram je310 num ber * of block ram je350 number * of block ram JE360 number of mono chrome pixel number of color pixel 0 -- ** -- ** -- ** -- ** -- -- 1 1 -- ** -- ** -- ** 64 32 2 2 -- ** 3 -- ** 128 64 3 4 1 6 2 256 128 4 8 2 12 3 512 256 5 16 4 24 6 1024 512 6 32 8 48 12 2 048 1024 7 64 16 96 24 4096 2048 * the core needs one additional block ram for the quantization table. ** these values are not allowed for this core . last_block_idx_x last_ block_idx_x : in std_logic _vector ( 8 downto 0); -- number of used blocks - 1 this signal determinate the number of samples in a row. the value is right - shifted by 3 and decrement by 1. the number of samples must be a multiple of 8 in mono chrome mode and a multiple of 16 in color mode. if the image width is not a multiple of 8 (or 16), then repeat the last pixel until the desired number is reached. for internal reasons, the minimum size is 32 samples. example for calculation the right value: 768 mono chrome pixel: 768 / 8 - 1 = 95dez = 5fh 768 color pixel: 2 * 768 / 8 - 1 = 191dez = bfh free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 25 num_pixel num_pixel : in std_logic _vector ( 11 downto 0); -- number of pixel in a row this signal determinate the number of pixel in a row. these information is used, only for the marker generation and don?t affect the pixel input interface . the value does n?t have to be a multiple of 8. num_rows num_rows : in std_logic _vector ( 11 downto 0); -- number of rows in the image this signal determinate the number of rows in the image. these information is used, only for the marker generation and don? t affect the pixel input interface. the value doesn?t have to be a multiple of 8. 4.7.2 compressed data output interface jpeg_out jpeg_out : out std_logic_vector ( 7 downto 0); -- jpeg stream byte output compressed data output stream with a size of 8 bit. da ta is valid, when the signal ?jpeg_valid? is asserted and s tays unchanged until ?jpeg_enable? is asserted. the data stream includes all the markers, that be needed to have a valid jpeg file. jpeg_enable jpeg_valid : out std_logic ; -- jpeg stream byte is valid assert this signal, when the application is ready to get the data byte. a valid data byte stays on the output until this signal is asserted. if not asserted, while ?jpeg_valid? is asserted, the output interface will be stalled, but the remain encod er still works until all internal fifo?s are filled up. jpeg_valid jpeg_enable : in std_logic ; -- application read the jpeg byte this is the output data qualifier. when asserted, the output data is valid and stay valid, until ?jpeg_enable? is asserted. if ?jpeg_enable? is already asserted, the output data is valid, only for one clock cycle. jpeg_ready jpeg_ready : out std_logic ; -- jpeg stream is finished this signal will be asserted, when the last byte from the last block of the entire image, is v alid. will say, the image is completely compressed. free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 26 4.7.3 tables programming interface table_clk table_clk : in std_logic ; -- clock for table reprogramming this is the clock for the tables programming interface. input signals must be valid at the rising edg e, output signals are updated with the rising edge to o. table_addr table_addr : in std_logic_vector ( 6 downto 0); -- table address these are the address lines for the access to the quantization tables. a5 . .. a0 select one of the 64 elements from th e table. a6 select between the luminance (?0?) and chrominance (?1?) table. for more information about the tables contents, see in the chapter ? 6. table s ? section. table_data table_data : inout std_logic_vector ( 7 downto 0); -- table data bidirectio nal data bus to writing into the tables and read there out. for detail information see the chapter ? 6. tables? section. table_write_quant table_write_quant : in std_logic ; -- write value in quantization tab write enable for the quantization tables. ass ert this signal for one clock cycle. address and data must be valid when asserted. because internal implementation reasons, there is not possible to change only some values. if at least on value is written (even if with the same value), all 64 values must be written. in color mode, even both tables. table_read_quant table_read_quant : in std_logic ; -- read quantization table read enable for the quantization tables. assert this signal for two cycles at least. data is valid one cycle after the last addres s change. free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 27 5. using w ith xilinx ise including the je3xx into the vhdl project is easy and need only three steps: set the ?macro search path? to the directory, that contain the ngc file copy the je3xx component declaration in the source file copy the je3xx in stantiation in your source file and map the signals 5.1 ngc file it is a good practice to create a new directory ? source ? in your project directory and copy the ngc file into. the ise must know where to search for the ngc file. this is done by setting the ?mac ro search path?: figure 18 : ise project select in the source window the top level source file. in the process window beneath appear all available processes. select the ?i mplement design? process and do a right click. in the pop - up menu click to ?properties? ?. free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 28 figure 19 : ise implementation process properties set the ?macro search path? in the process properties to the directory where the ngc file ( je3xx .ngc) is inside. the ise shows the je3xx modul e with a red question mark as absent. this can be ignored . free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 29 5.2 component declaration s copy the je3xx component declaration into the architecture body: 5.2.1 je300 c omponent declaration entity myentity is port ( . . . ); end myentity; architecture rtl of myen tity is . . . component je300 is port ( -- pixel input clk : in std_logic ; -- main clock for encoder reset : in std_logic ; -- reset jpeg logic color : in std_logic ; -- color mode (0 = mono) valid_data_in : in std_logic ; -- sample data is valid data_in : in std_logic_vector (7 downto 0); -- sample data last_ row : in std_logic ; -- last row in this image max_line_size : in std_logic _vector ( 2 downto 0); -- 001:64, 010:128 ... 111:4096 last_ block_idx_x : in std_logic _vector ( 8 downto 0); -- num ber of used blocks - 1 num_pixel : in std_logic _vector ( 11 downto 0); -- number of pixel in a row num_rows : in std_logic _vector ( 11 downto 0); -- number of row in the image ram _ready : out std_logic ; -- encoder is ready for new pixel -- compressed dat a output jpeg_out : out std_logic_vector (7 downto 0); -- jpeg stream byte output jpeg_valid : out std_logic ; -- jpeg stream byte is valid jpeg_enable : in std_logic ; -- application read the jpeg byte jpeg_ready : out std_logic ; -- jpeg stream is fin ished -- tables programming table_clk : in std_logic ; -- clock for table reprogramming table_addr : in std_logic_vector ( 6 downto 0); -- table address table_data : inout std_logic_vector ( 7 downto 0); -- table data table_write_quant : in std_logi c ; -- write value in quantization tab table_read_quant : in std_logic -- read quantization table ); end component ; . . . begin . . . end rtl; free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 30 5.2.2 je310 c omponent declaration entity myentity is port ( . . . ); end myentity; architecture rtl o f myentity is . . . component je310 is port ( -- pixel input clk : in std_logic ; -- main clock for encoder reset : in std_logic ; -- reset jpeg logic color : in std_logic ; -- color mode (0 = mono) valid_data_in : in std_logic ; -- sample data is valid data_in : in std_logic_vector (7 downto 0); -- sample data last_ row : in std_logic ; -- last row in this image max_line_size : in std_logic _vector ( 2 downto 0); -- 001:64, 010:128 ... 111:4096 last_ block_idx_x : in std_logic _vector ( 8 downto 0); -- number of used blocks - 1 num_pixel : in std_logic _vector ( 11 downto 0); -- number of pixel in a row num_rows : in std_logic _vector ( 11 downto 0); -- number of row in the image ram _ready : out std_logic ; -- encoder is ready for new pixel -- compress ed data output jpeg_out : out std_logic_vector (7 downto 0); -- jpeg stream byte output jpeg_valid : out std_logic ; -- jpeg stream byte is valid jpeg_enable : in std_logic ; -- application read the jpeg byte jpeg_ready : out std_logic ; -- jpeg stream is finished -- tables programming table_clk : in std_logic ; -- clock for table reprogramming table_addr : in std_logic_vector ( 6 downto 0); -- table address table_data : inout std_logic_vector ( 7 downto 0); -- table data table_write_quant : in st d_logic ; -- write value in quantization tab table_read_quant : in std_logic -- read quantization table ); end component ; . . . begin . . . end rtl; free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 31 5.2.3 je350 c omponent declaration entity myentity is port ( . . . ); end myentity; architectur e rtl of myentity is . . . component je350 is port ( -- pixel input clk : in std_logic ; -- main clock for encoder reset : in std_logic ; -- reset jpeg logic color : in std_logic ; -- color mode (0 = mono) valid_data_in : in std_logic ; -- sample data is valid data_in : in std_logic_vector ( 11 downto 0); -- sample data last_ row : in std_logic ; -- last row in this image max_line_size : in std_logic _vector ( 2 downto 0); -- 001:64, 010:128 ... 111:4096 last_ block_idx_x : in std_logic _vector ( 8 dow nto 0); -- number of used blocks - 1 num_pixel : in std_logic _vector ( 11 downto 0); -- number of pixel in a row num_rows : in std_logic _vector ( 11 downto 0); -- number of row in the image ram _ready : out std_logic ; -- encoder is ready for new pixel -- compressed data output jpeg_out : out std_logic_vector (7 downto 0); -- jpeg stream byte output jpeg_valid : out std_logic ; -- jpeg stream byte is valid jpeg_enable : in std_logic ; -- application read the jpeg byte jpeg_ready : out std_logic ; -- jpeg stream is finished -- tables programming table_clk : in std_logic ; -- clock for table reprogramming table_addr : in std_logic_vector ( 6 downto 0); -- table address table_data : inout std_logic_vector ( 7 downto 0); -- table data table_write_quant : in std_logic ; -- write value in quantization tab table_read_quant : in std_logic -- read quantization table ); end component ; . . . begin . . . end rtl; free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 32 5.2.4 JE360 c omponent declaration entity myentity is port ( . . . ); end myentity; arc hitecture rtl of myentity is . . . component je300 is port ( -- pixel input clk : in std_logic ; -- main clock for encoder reset : in std_logic ; -- reset jpeg logic color : in std_logic ; -- color mode (0 = mono) valid_data_in : in std_logic ; -- sample data is valid data_in : in std_logic_vector ( 11 downto 0); -- sample data last_ row : in std_logic ; -- last row in this image max_line_size : in std_logic _vector ( 2 downto 0); -- 001:64, 010:128 ... 111:4096 last_ block_idx_x : in std_logic _vecto r ( 8 downto 0); -- number of used blocks - 1 num_pixel : in std_logic _vector ( 11 downto 0); -- number of pixel in a row num_rows : in std_logic _vector ( 11 downto 0); -- number of row in the image ram _ready : out std_logic ; -- encoder is ready for new pi xel -- compressed data output jpeg_out : out std_logic_vector (7 downto 0); -- jpeg stream byte output jpeg_valid : out std_logic ; -- jpeg stream byte is valid jpeg_enable : in std_logic ; -- application read the jpeg byte jpeg_ready : out std_logic ; -- jpeg stream is finished -- tables programming table_clk : in std_logic ; -- clock for table reprogramming table_addr : in std_logic_vector ( 6 downto 0); -- table address table_data : inout std_logic_vector ( 7 downto 0); -- table data table_wri te_quant : in std_logic ; -- write value in quantization tab table_read_quant : in std_logic -- read quantization table ); end component ; . . . begin . . . end rtl; free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 33 5.3 component instantiation s copy the je3xx component instantiation into the rtl an d assign your signals to the entity signals. 5.3.1 je300 component instantiation entity myentity is port ( . . . ); end myentity; architecture rtl of myentity is . . . begin . . . u je300 : je300 port map ( -- pixel input clk => ... , -- main clock for encoder reset => ... , -- reset jpeg logic data_in => ... , -- sample data valid_data_in => ... , -- sample data is valid last_ row => ... , -- last row in this image color => ... , -- color mode (0 = mono) max_line_size => ... , -- 001:64 , 010:128 ... 111:4096 last_ block_idx_x => ... , -- number of used blocks - 1 num_pixel => ... , -- number of pixel in a row num_rows => ... , -- number of row in the image ram _ready => ... , -- encoder is ready for new pixel -- compressed data output jpeg_out => ... , -- jpeg stream byte output jpeg_valid => ... , -- jpeg stream byte is valid jpeg_enable => ... , -- application read the jpeg byte jpeg_ready => ... , -- jpeg stream is finished -- tables programming table_clk => ... , -- clock for table reprogramming table_addr => ... , -- table address table_data => ... , -- table data table_write_quant => ... , -- write value in quantization tab table_read_quant => ... , -- read quantization table ); . . . end rtl; free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 34 5.3.2 je310 compone nt instantiation entity myentity is port ( . . . ); end myentity; architecture rtl of myentity is . . . begin . . . u je310 : je310 port map ( -- pixel input clk => ... , -- main clock for encoder reset => ... , -- reset jpeg logic dat a_in => ... , -- sample data valid_data_in => ... , -- sample data is valid last_ row => ... , -- last row in this image color => ... , -- color mode (0 = mono) max_line_size => ... , -- 001:64, 010:128 ... 111:4096 last_ block_idx_x => ... , -- numbe r of used blocks - 1 num_pixel => ... , -- number of pixel in a row num_rows => ... , -- number of row in the image ram _ready => ... , -- encoder is ready for new pixel -- compressed data output jpeg_out => ... , -- jpeg stream byte output jpeg_val id => ... , -- jpeg stream byte is valid jpeg_enable => ... , -- application read the jpeg byte jpeg_ready => ... , -- jpeg stream is finished -- tables programming table_clk => ... , -- clock for table reprogramming table_addr => ... , -- table ad dress table_data => ... , -- table data table_write_quant => ... , -- write value in quantization tab table_read_quant => ... , -- read quantization table ); . . . end rtl; free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 35 5.3.3 je350 component instantiation entity myentity is port ( . . . ); end myentity; architecture rtl of myentity is . . . begin . . . u je350 : je350 port map ( -- pixel input clk => ... , -- main clock for encoder reset => ... , -- reset jpeg logic data_in => ... , -- sample data valid_data_in => ... , -- sa mple data is valid last_ row => ... , -- last row in this image color => ... , -- color mode (0 = mono) max_line_size => ... , -- 001:64, 010:128 ... 111:4096 last_ block_idx_x => ... , -- number of used blocks - 1 num_pixel => ... , -- number of pixe l in a row num_rows => ... , -- number of row in the image ram _ready => ... , -- encoder is ready for new pixel -- compressed data output jpeg_out => ... , -- jpeg stream byte output jpeg_valid => ... , -- jpeg stream byte is valid jpeg_enable => . .. , -- application read the jpeg byte jpeg_ready => ... , -- jpeg stream is finished -- tables programming table_clk => ... , -- clock for table reprogramming table_addr => ... , -- table address table_data => ... , -- table data table_write_qu ant => ... , -- write value in quantization tab table_read_quant => ... , -- read quantization table ); . . . end rtl; free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 36 5.3.4 JE360 component instantiation entity myentity is port ( . . . ); end myentity; architecture rtl of myentity is . . . begin . . . u JE360 : JE360 port map ( -- pixel input clk => ... , -- main clock for encoder reset => ... , -- reset jpeg logic data_in => ... , -- sample data valid_data_in => ... , -- sample data is valid last_ row => ... , -- last row in this image color => ... , -- color mode (0 = mono) max_line_size => ... , -- 001:64, 010:128 ... 111:4096 last_ block_idx_x => ... , -- number of used blocks - 1 num_pixel => ... , -- number of pixel in a row num_rows => ... , -- number of row in the imag e ram _ready => ... , -- encoder is ready for new pixel -- compressed data output jpeg_out => ... , -- jpeg stream byte output jpeg_valid => ... , -- jpeg stream byte is valid jpeg_enable => ... , -- application read the jpeg byte jpeg_ready => ... , -- jpeg stream is finished -- tables programming table_clk => ... , -- clock for table reprogramming table_addr => ... , -- table address table_data => ... , -- table data table_write_quant => ... , -- write value in quantization tab table_rea d_quant => ... , -- read quantization table ); . . . end rtl; free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 37 6. quantization table s the quantization table contains the divisors for the coefficient quantization. there are two tables implemented, predefined after power - up. the reset signal doesn?t affe ct the table?s contents. the address lines ?table_addr? are used to select a value in one of the four tables: a6 a5 ? a0 table zigzag index because the values in the table are in zigzag order, a table is needed to convert the ind ic es from a quantizati on table in coefficient order. the following table can be used to do this. table 10 : zigzag o rder x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xa xb xc xd xe xf 0x 0 1 8 16 9 2 3 10 17 24 32 25 18 11 04 05 1x 12 19 26 33 40 48 41 34 27 20 13 0 6 07 14 21 28 2x 35 42 49 56 57 50 43 36 29 22 15 23 30 37 44 51 3x 58 59 52 45 38 31 39 46 53 60 61 54 47 55 62 63 to fill the je3xx quantization table from a divisor table in coefficient order, use the following c code: int zigzag_table [64] = { 0, 1, 8,16, 9, 2, 3,10, 17,24,32,25,18,11,04,05, 12,19,26,33,40,48,41,34, 27,20,13,06,07,14,21,28, 35,42,49,56,57,50,43,36, 29,22,15,23,30,37,44,51, 58,59,52,45,38,31,39,46, 53,60,61,54,47,55,62,63 }; for ( i = 0 ; i < 64; i++) { quantization_table [i] = divisor_table [ zigzag_table [i] ]; } each table entry has a size of 8 bit and contains the unsigned divisor for quantization. allowed values are 1 to 255. d7 ? d0 divisor free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 38 6.1 default quantization table f or luminance thi s quantization table is predefined in the core as index 0. the table is shown in the coefficient order. table 11 : default quantization t able for l uminance x0 x1 x2 x3 x4 x5 x6 x7 0x 16 11 10 16 24 40 51 61 1x 12 12 14 19 26 58 6 0 55 2x 14 13 16 24 40 57 69 56 3x 14 17 22 29 51 87 80 62 4x 18 22 37 56 68 109 103 77 5x 24 35 55 64 81 104 113 92 6x 49 64 78 87 103 121 120 101 7x 72 92 95 98 112 100 103 99 6.2 default quantization t able f or c hrominance this quantization table is p redefined in the core as index 1. the table is shown in the coefficient order. table 12 : default quantization t able for c hrominance x0 x1 x 2 x3 x4 x5 x6 x7 0x 17 18 24 47 99 99 99 99 1x 18 21 26 66 99 99 99 99 2x 24 26 56 99 99 99 99 99 3x 47 66 99 99 99 99 99 99 4x 99 99 99 99 99 99 99 99 5x 99 99 99 99 99 99 99 99 6x 99 99 99 99 99 99 99 99 7x 99 99 99 99 99 99 99 99 free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 39 6.3 changing the compression rate to change the compression rate, change the values of the quantization tab le. there is no rule how to do this, but usually the default values are scaled. a quality parameter ( q ) is used to determinate the scaling. a low value results in a low quality image with a high compression rate and a high value results in a high quality i mage with a low compression rate. allowed values are 1 to 100 ; see at our web pages for sample images with various quality values. use the following formula to calculate a scaled quantization table: quality : q ( 1..100 ) scaling factor : s item from the d efault table : xd i item from the scaled table : xs i s = 50/q for q < 50 s = 2 - q/50 for q >= 50 xs i = xd i * s the following c code illustrates the scaling of the quantization table: int q = 75; double s; int i; if (q <= 50) { s = 50.0 / level; } else { s = 2.0 - q / 50.0; } for (i = 0; i < 64; i++) { scaled_quantization_table[i] = (byte)(default_quantization_table[i] * s); } free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 40 7. huffman tables the huffman table contains the huffman code words for the dc and ac coefficients, there are different codes for the dc and the ac coefficients. 7.1 default huffman table s for je300 and je310 7.1.1 huffman t able f or l uminance this table shows the number of codes for the luminance dc table: table 13 : luminance n umber of d c c odes length 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 number 0 h 1 h 5 h 1 h 1 h 1 h 1 h 1 h 1 h 0 h 0 h 0 h 0 h 0 h 0 h 0 h this table shows the assignment of generated codes to the size symbols for the luminance dc table: table 14 : luminance d c s ymbol to c ode a ss ignment code 0 1 2 3 4 5 6 7 8 9 10 11 symbol 0 h 1 h 2 h 3 h 4 h 5 h 6 h 7 h 8 h 9 h a h b h this table shows the number of codes for the luminance ac table: table 15 : luminance n umber of a c c odes length 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 number 0 h 2 h 1 h 3 h 3 h 2 h 4 h 3 h 5 h 5 h 4 h 4 h 0 h 0 h 1 h 7d h this table shows the assignment of generated codes to the run/size symbols for the luminance ac table: table 16 : luminance ac s ymbol to c ode a ssignment x0 x1 x 2 x3 x4 x5 x6 x 7 x8 x9 xa xb xc xd xe xf 0x 01 h 02 h 03 h 00 h 04 h 11 h 05 h 12 h 21 h 31 h 41 h 06 h 13 h 51 h 61 h 07 h 1x 22 h 71 h 14 h 32 h 81 h 91 h a1 h 08 h 23 h 42 h b1 h c1 h 15 h 52 h d1 h f0 h 2x 24 h 33 h 62 h 72 h 82 h 09 h 0a h 16 h 17 h 18 h 19 h 1a h 25 h 26 h 27 h 28 h 3x 29 h 2a h 34 h 35 h 36 h 37 h 38 h 39 h 3a h 43 h 44 h 45 h 46 h 47 h 48 h 49 h 4x 4a h 53 h 54 h 55 h 56 h 57 h 58 h 59 h 5a h 63 h 64 h 65 h 66 h 67 h 68 h 69 h 5x 6a h 73 h 74 h 75 h 76 h 77 h 78 h 79 h 7a h 83 h 84 h 85 h 86 h 87 h 88 h 89 h 6x 8a h 92 h 93 h 94 h 95 h 96 h 97 h 98 h 99 h 9a h a2 h a3 h a4 h a5 h a6 h a7 h 7x a8 h a9 h aa h b2 h b3 h b4 h b5 h b6 h b7 h b8 h b9 h ba h c2 h c3 h c4 h c5 h 8x c6 h c7 h c8 h c9 h ca h d2 h d3 h d4 h d5 h d6 h d7 h d8 h d9 h da h e1 h e2 h 9x e3 h e4 h e5 h e6 h e7 h e8 h e9 h ea h f1 h f2 h f3 h f4 h f5 h f6 h f7 h f8 h ax f9 h fa h free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 41 7.1.2 huffman t able f or c hromina nce this table shows the number of codes for the chrominance dc table: table 17 : chrominance n umber of dc c odes length 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 number 0 h 3 h 1 h 1 h 1 h 1 h 1 h 1 h 1 h 1 h 1 h 0 h 0 h 0 h 0 h 0 h this table sho ws the assignment of generated code to the size symbol for the chrominance dc table: table 18 : chrominance dc s ymbol to c ode a ssignment code 0 1 2 3 4 5 6 7 8 9 10 11 symbol 0 h 1h 2 h 3 h 4 h 5 h 6 h 7 h 8 h 9 h a h b h this table shows t he number of codes for the chrominance ac table: table 19 : chrominance n umber of ac c odes length 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 number 0 h 2 h 1 h 2 h 4 h 4 h 3 h 4 h 7 h 5 h 4 h 4 h 0 h 1 h 2 h 77 h this table shows the assignment of g enerated code to the run/size symbol for the chrominance ac table: table 20 : chrominance ac s ymbol to c ode a ssignment x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xa xb xc xd xe xf 0x 00 h 01 h 02 h 03 h 11 h 04 h 05 h 21 h 31 h 06 h 12 h 41 h 51 h 07 h 61 h 71 h 1x 13 h 22 h 32 h 81 h 08 h 14 h 42 h 91 h a1 h b1 h c1 h 09 h 23 h 33 h 52 h f0 h 2x 15 h 62 h 72 h d1 h 0a h 16 h 24 h 34 h e1 h 25 h f1 h 17 h 18 h 19 h 1a h 26 h 3x 27 h 28 h 29 h 2a h 35 h 36 h 37 h 38 h 39 h 3a h 43 h 44 h 45 h 46 h 47 h 48 h 4x 49 h 4a h 53 h 54 h 55 h 56 h 57 h 58 h 59 h 5a h 63 h 64 h 65 h 66 h 67 h 68 h 5x 69 h 6a h 73 h 74 h 75 h 76 h 77 h 78 h 79 h 7a h 82 h 83 h 84 h 85 h 86 h 87 h 6x 88 h 89 h 8a h 92 h 93 h 94 h 95 h 96 h 97 h 98 h 99 h 9a h a2 h a3 h a4 h a5 h 7x a6 h a7 h a8 h a9 h aa h b2 h b3 h b4 h b5 h b6 h b7 h b8 h b9 h ba h c2 h c3 h 8x c4 h c5 h c6 h c7 h c8 h c9 h ca h d2 h d3 h d4 h d5 h d6 h d7 h d8 h d9 h da h 9x e2 h e3 h e4 h e5 h e6 h e7 h e8 h e9 h ea h f2 h f3 h f4 h f5 h f6 h f7 h f8 h ax f9 h fa h free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 42 7.2 default huffman table s for je350 and JE360 7.2.1 huffman table f or luminance this table shows the number of codes for the lumina nce dc table: table 21 : luminance n umber of dc c odes length 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 number 0h 1h 5h 1h 1h 1h 1h 1h 1h 1h 1h 1h 1h 0h 0h 0h this table shows the assignment of generated codes to the size symbols for the luminance dc table: table 22 : luminance dc s ymbol to c ode code 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 symbol 0h 1h 2h 3h 4h 5h 6h 7h 8h 9h ah bh ch dh eh fh this table shows the number of codes for the luminance ac table: ta ble 23 : luminance n umber of ac c odes length 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 number 0h 2h 1h 3h 2 h 4 h 6 h 3h 0 h 0 h 1 h 1 h 0h 1 h 1h c9 h this table shows the assignment of generated codes to the run/size symbols for the luminan ce ac table: table 24 : luminance ac s ymbol to c ode a ssignment x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xa xb xc xd xe xf 0x 01h 02h 03h 00h 04h 11h 05h 12h 21h 31h 41h 06h 13h 51h 61h 07h 1x 22h 71h 14h 32h 81h 91h a1h 08h 23h 42h b1h c1h 15h 52h d1h f0h 2x 24h 33h 62h 72h 82h 09h 0ah 16h 17h 18h 19h 1ah 25h 26h 27h 28h 3x 29h 2ah 34h 35h 36h 37h 38h 39h 3ah 43h 44h 45h 46h 47h 48h 49h 4x 4ah 53h 54h 55h 56h 57h 58h 59h 5ah 63h 64h 65h 66h 67h 68h 69h 5x 6ah 73h 74h 75h 76h 77h 78h 79h 7ah 83h 84h 85h 86h 87h 88h 89h 6x 8ah 92h 93h 94h 95h 96h 97h 98h 99h 9ah a2h a3h a4h a5h a6h a7h 7x a8h a9h aah b2h b3h b4h b5h b6h b7h b8h b9h bah c2h c3h c4h c5h 8x c6h c7h c8h c9h cah d2h d3h d4h d5h d6h d7h d8h d9h dah e1h e2h 9x e3h e4h e5h e6h e7h e8h e9h eah f1h f2h f3h f4h f5h f6h f7h f8h ax f9h fah 0bh 0ch 0dh 0eh 1bh 1ch 1dh 1eh 2bh 2ch 2dh 2eh 3bh 3ch bx 3dh 3eh 4bh 4ch 4dh 4eh 5bh 5ch 5dh 5eh 6bh 6ch 6dh 6eh 7bh 7ch cx 7dh 7eh 8bh 8ch 8dh 8eh 9bh 9ch 9dh 9eh abh ach adh aeh bbh bch dx bdh beh cbh cch cdh ceh dbh dch ddh deh ebh ech edh eeh fbh fch ex fdh feh free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 43 7.2.2 huffman table f or chrominance this table shows the number of codes for the chrominance dc table: table 25 : chrominance n umber of dc c ode s length 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 number 0h 3h 1h 1h 1h 1h 1h 1h 1h 1h 1h 1h 1 h 1 h 1 h 0h this table shows the assignment of generated code to the size symbol for the chrominance dc table: table 26 : chrominance dc s ymbol to c ode a ssignment code 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 symbol 0h 1h 2h 3h 4h 5h 6h 7h 8h 9h ah bh ch dh eh fh this table shows the number of codes for the chrominance ac table: table 27 : chrominance n umber of ac c od es length 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 number 0h 2h 1h 1 h 4h 5 h b h 5 h 0 h 0 h 1 h 1 h 1 h 1h 2 h bf h this table shows the assignment of generated code to the run/size symbol for the chrominance ac table: table 28 : chrominanc e ac s ymbol to c ode a ssignment x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xa xb xc xd xe xf 0x 00h 01h 02h 03h 11h 04h 05h 21h 31h 06h 12h 41h 51h 07h 61h 71h 1x 13h 22h 32h 81h 08h 14h 42h 91h a1h b1h c1h 09h 23h 33h 52h f0h 2x 15h 62h 72h d1h 0ah 16h 24h 34h e1h 25h f1h 17h 18h 19h 1ah 26h 3x 27h 28h 29h 2ah 35h 36h 37h 38h 39h 3ah 43h 44h 45h 46h 47h 48h 4x 49h 4ah 53h 54h 55h 56h 57h 58h 59h 5ah 63h 64h 65h 66h 67h 68h 5x 69h 6ah 73h 74h 75h 76h 77h 78h 79h 7ah 82h 83h 84h 85h 86h 87h 6x 88h 89h 8ah 92h 93h 94h 95h 96h 97h 98h 99h 9ah a2h a3h a4h a5h 7x a6h a7h a8h a9h aah b2h b3h b4h b5h b6h b7h b8h b9h bah c2h c3h 8x c4h c5h c6h c7h c8h c9h cah d2h d3h d4h d5h d6h d7h d8h d9h dah 9x e2h e3h e4h e5h e6h e7h e8h e9h eah f2h f3h f4h f5h f6h f7h f8h ax f9h fah 0bh 0ch 0dh 0eh 1bh 1ch 1dh 1eh 2bh 2ch 2dh 2eh 3bh 3ch bx 3dh 3eh 4bh 4ch 4dh 4eh 5bh 5ch 5dh 5eh 6bh 6ch 6dh 6eh 7bh 7ch cx 7dh 7eh 8bh 8ch 8dh 8eh 9bh 9ch 9dh 9eh abh ach adh aeh bbh bch dx bdh beh cbh cch cdh ceh dbh dch ddh deh ebh ech edh eeh fbh fch ex fdh feh free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 44 8. literature and l inks 8.1 documents f rom t he internet the jpeg still picture compression standard . wallace gk (ed) ( pdf document) jpeg file interchange format. hamilton e (ed) (pdf document) 8.2 hard b ook jpeg still image da ta compression standard . pennebaker wb, m itchell jl (eds) kluwer academic publishers boston, dordrecht, london, 1993 8.3 internet links jpeg organization http://www.jpeg.org/ nasa vision group publications menu http://vision.arc.nasa.gov/publications/publications.html#imagecompression free datasheet http://www.0pdf.com
penz vhdl je300 , je310 , je350 and JE360 45 9. revision i nfo rev. date changes 1.0 08 . september 200 3 i nitial revision 1.1 20. december 2 003 chapter 4.3 needed resource: number of iobs corrected, for je300 and he310. tables added for je350 and JE360. chapter 4.7.1 pixel input interface: description for the signal ?ram_ready? extended. 3.0 18. february 2004 chapter 4.3 needed resource, table actualized free datasheet http://www.0pdf.com


▲Up To Search▲   

 
Price & Availability of JE360

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X